//======================
//模型：SecondHandHouse模型, secondHandHouse表
//======================
let {DataTypes, Model} = require('sequelize');

class SecondHandHouse extends Model {}

//定义模型结构, 数据表结构
SecondHandHouse.init({
  id: {
    type: DataTypes.INTEGER.UNSIGNED,
    autoIncrement: true,
    primaryKey: true,
    allowNull: false,
    comment: '表id'
  },

  // houseId: {
  //   type: DataTypes.STRING(30),
  //   allowNull: false,
  //   // primaryKey: true,
  //   comment: '二手房id'
  // },

  title: {
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: '待审核',
    comment: '二手房标题'
  },

  // city:{
  //   type: DataTypes.STRING(10),
  //   allowNull: false,
  //   defaultValue: '广州',
  //   comment: '二手房所在城市'
  // },

  // location:{
  //   type: DataTypes.STRING,
  //   allowNull: false,
  //   defaultValue: '',
  //   comment: '二手房所在区域'
  // },

  builtArea:{
    type: DataTypes.FLOAT,
    allowNull: false,
    defaultValue: 0,
    comment: '二手房建筑面积'
  },

  insideArea:{
    type: DataTypes.FLOAT,
    allowNull: false,
    defaultValue: 0,
    comment: '二手房套内面积'
  },

  floor:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    comment: '二手房楼层'
  },

  // floor2:{
  //   type: DataTypes.STRING(10),
  //   allowNull: false,
  //   defaultValue: '',
  //   comment: '二手房楼层总数'
  // },

  sup: {
    type: DataTypes.FLOAT,
    allowNull: false,
    defaultValue: 0,
    comment: '二手房总价'
  },

  sub: {
    type: DataTypes.FLOAT,
    allowNull: false,
    defaultValue: 0,
    comment: '二手房单价'
  },

  kind:{
    type: DataTypes.STRING(20),
    allowNull: false,
    // defaultValue: '',
    comment: '二手房户型'
  },
  
  kind1:{
    type: DataTypes.INTEGER,
    allowNull: false,
    // defaultValue: '',
    comment: '二手房几个室'
  },

  kind2:{
    type: DataTypes.INTEGER,
    allowNull: false,
    // defaultValue: '',
    comment: '二手房几个厅'
  },

  kind3:{
    type: DataTypes.INTEGER,
    allowNull: false,
    // defaultValue: '',
    comment: '二手房几个卫'
  },

  decoration:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    comment: '二手房装修程度'
  },

  orientation:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    comment: '二手房朝向'
  },

  builtYear: {
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    comment: '建成年月'
  },

  purpose:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    // defaultValue: '普通住宅',
    comment: '用途'
  },
  
  nature:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    // defaultValue: '商品房',
    comment: '产权性质'
  },

  propertyYear:{
    type: DataTypes.INTEGER(5),
    allowNull: false,
    defaultValue: 0,
    comment: '产权年限'
  },
  
  lights_desc: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '二手房亮点'
  },

  dec_desc: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '二手房装修简介'
  },

  kind_desc: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '二手房户型简介'
  },

  tag1:{
    type: DataTypes.INTEGER(2),
    allowNull: false,
    defaultValue: 0,
    comment: '二手房标签1-精选好房'
  },
  tag2:{
    type: DataTypes.STRING(10),
    allowNull: false,
    defaultValue: '',
    comment: '二手房标签2-满几年'
  },
  tag3:{
    type: DataTypes.INTEGER(2),
    allowNull: false,
    defaultValue: 0,
    comment: '二手房标签3-红本在手'
  },
  tag4:{
    type: DataTypes.INTEGER(2),
    allowNull: false,
    defaultValue: 0,
    comment: '二手房标签4-有电梯'
  },
  tag5:{
    type: DataTypes.INTEGER(2),
    allowNull: false,
    defaultValue: 0,
    comment: '二手房标签5-随时可看'
  },
  traffic:{
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '二手房交通'
  },
  sellingTime:{
    type: DataTypes.DATE,
    allowNull: true,
    defaultValue: null,
    comment: '二手房挂牌日期'
  },
  transactionDate:{
    type: DataTypes.DATE,
    allowNull: true,
    defaultValue: null,
    comment: '二手房成交日期'
  },

  img: {
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: 'http://127.0.0.1:10001/static/file/images_default.png',
    comment: '二手房图片'
  },

  imgList:{
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '二手房详情图片'
  },

  houseNum:{
    type: DataTypes.STRING,
    allowNull: false,
    // defaultValue: '',
    comment: '楼阁房号'
  },

  branch:{
    type: DataTypes.STRING(50),
    allowNull: true,
    // defaultValue: '17web3',
    defaultValue: null,
    comment: '所属分行'
  },

  state: {
    type: DataTypes.INTEGER(2),
    allowNull: false,
    defaultValue: 0,
    comment: '二手房状态, -1-下架 0-审核中 1-在售 2-已售 3取消委托 4审核失败'
  },

  // school:{
  //   type: DataTypes.STRING(10),
  //   allowNull: true,
  //   defaultValue: '',
  //   comment: '距离较近的学校'
  // },

  estateId: {
    type: DataTypes.INTEGER.UNSIGNED,
    allowNull: false,
    comment: '小区id'
  },

  userName:{
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue:'',
    comment: '委托房源的用户的姓名'
  },
  userPhone:{
    type: DataTypes.STRING(11),
    allowNull: true,
    defaultValue:'',
    comment: '委托房源的用户的电话'
  },

  
}, {

  //指定连接实例，这样才知道在指定数据库创建secondHandHouse表
  sequelize,

  //模型名称, 当没有指定表名时，sequelize推断名称为模型名称的复数 ==> secondHandHouses作为表名
  modelName: 'secondHandHouse',

  //不推断，直接使用模型作为表名 ==> secondHandHouse作为表名
  freezeTableName: true,

  //指定表名
  tableName: 'secondHandHouse'
})

//同步数据库表
//force: true ==> 删除原有secondHandHouse表，新建secondHandHouse表
//force: false ==> 如果secondHandHouse存在，则不创建，反之，不创建secondHandHouse表
SecondHandHouse.sync({force: false});

module.exports = SecondHandHouse;
